|
HOT TIP: voit selata sivustoa vapaasti musiikin soidessa

Loading...
entropy.fi - Stripe integraatio

Arvioitu lukuaika: 1min 56s
Luotu: 29.11.2023, 12:37 - Päivitetty: 29.10.2024, 18:06
22.11.2023, 20:00

Taustaa

e30v-tapahtumaa varten tarvittiin maksujärjestelmä verkossa tapahtumaa lipunmyyntiä varten. Aiemmissa tapahtumassa lipunmyynti oli järjestetty kolmannen osapuolen järjestelmien, esim. Holvin, kautta, tai perinteisesti verkkopankin kautta. Tähän tapahtumaan haluttiin kuitenkin saumaton integraatio Stripen, eli maksunvälitysjärjestelmän kanssa. Integraation tavoitteena oli mahdollistaa nopea ja helppo maksaminen. Tässä projektissa rakensin siis e30v-tapahtumaa varten Stripe-integraation Entropyn sivuille.

Haaste

Tyypillisesti haasteena verkkolipunmyynnissä on lippujen rajattu määrä ja useat yhtäaikaiset käyttäjät. Miten estää lippujen myynti yli rajatun määrä, etenkin jos sivustoa käyttää monta sataa ihmistä yhtä aikaa?

Ratkaisu

Seurasin lippujen määrää käyttämällä tietoa myydyistä lipuista sekä Stripen ostoaikomuksista. En siis varannut lippuja käyttäjälle siinä vaiheessa, kun lippu lisättiin ostoskoriin. Luotin siihen, että palvelin on tarpeeksi nopea tarkistaakseen tarvittavat asiat ostoaikomuksen tekemisen yhteydessä.

Integraation toteutus

Itse Stripe-integraatiossa ei sinällään ole mitään ihmeellistä. Ensiksi luodaan käyttäjän ostoskorista Stripeen ostosaikomus palvelimen puolella ja lähetetään se käyttäjälle. Kun aikomus on tehty, käyttäjällä on 30 minuuttia aikaa maksaa ostoskorin sisältö. Sitten vaikea osuus: palvelimen pitää pystyä seuraamaan näitä ostoaikomuksia muille käyttäjille, jotta ei tapahdu ylimyyntiä.

Kun lipunmyynti alkoi, julkaisin liput niin, että määritin kullekin lipputyypille lippujen kokonaismäärän. Aloitin kalliimmista lipuista siirtyen halvimpiin lipputyyppeihin. Yritin tähdätä siihen, että halvimmat olisivat myynnissä täsmälleen luvatulla kellonajalla. Halvimpia lippuja oli tarjolla 30 kappaletta. Kun lippujen myynti alkoi, sivustolla oli satoja ihmisiä. En huomannut, että sivustolla olisi ollut hidastumisen merkkejä. Kaikki näistä 30 lipusta myytiin samalla minuutilla, kun niiden ostaminen sallittiin.

Loppujen lopuksi yksi lippu myyntiin yli. Tämä johtui siitä, että kun yksi lippu on ollut jäljellä, on kaksi käyttäjää painanut ostonappulaa täysin samaan aikaan. Näin ollen ostoaikomukset eivät olleet tietoisia toisistaan, ja tämän takia myyntiä ei voitu estää palvelimen päässä.

Nyt Entropyn sivuilla on siis käytettävissä Stripe, joka hoitaa maksuliikenteen. Hauska harjoitus tämäkin.